Spring Boot এ OAuth2 এর ইন্টিগ্রেশন

Java Technologies - স্প্রিং বুট ক্লায়েন্ট (Spring Boot Client) Spring Boot এবং OAuth2 Integration |
94
94

OAuth2 হল একটি ইন্ডাস্ট্রি-স্ট্যান্ডার্ড প্রোটোকল যা সিকিউরড অথরাইজেশন মেকানিজম প্রদান করে। Spring Boot-এ OAuth2 ইন্টিগ্রেশন সহজে করা যায় Spring Security ফ্রেমওয়ার্ক ব্যবহার করে। এটি ব্যবহার করে আপনার অ্যাপ্লিকেশন থার্ড-পার্টি প্রোভাইডার (যেমন Google, GitHub, Facebook) থেকে অথেন্টিকেশন এবং অথরাইজেশন পেতে পারে।


OAuth2 ইন্টিগ্রেশন পদ্ধতি

Spring Boot অ্যাপ্লিকেশনে OAuth2 ইন্টিগ্রেশনের ধাপগুলো নিম্নরূপ:


১. প্রকল্প তৈরি

Spring Initializer (start.spring.io) ব্যবহার করে প্রজেক্ট তৈরি করুন। নিচের ডিপেন্ডেন্সিগুলি যোগ করুন:

  • Spring Boot Starter Web
  • Spring Boot Starter OAuth2 Client
  • Spring Boot Starter Security

Maven Dependency (pom.xml):

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-security</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-oauth2-client</artifactId>
    </dependency>
</dependencies>

২. Application Configuration

application.properties বা application.yml ফাইলে কনফিগারেশন:

spring.security.oauth2.client.registration.google.client-id=YOUR_GOOGLE_CLIENT_ID
spring.security.oauth2.client.registration.google.client-secret=YOUR_GOOGLE_CLIENT_SECRET
spring.security.oauth2.client.registration.google.redirect-uri={baseUrl}/login/oauth2/code/google
spring.security.oauth2.client.registration.google.scope=openid,profile,email
spring.security.oauth2.client.registration.google.authorization-grant-type=authorization_code
spring.security.oauth2.client.registration.google.client-name=Google

spring.security.oauth2.client.provider.google.authorization-uri=https://accounts.google.com/o/oauth2/auth
spring.security.oauth2.client.provider.google.token-uri=https://oauth2.googleapis.com/token
spring.security.oauth2.client.provider.google.user-info-uri=https://www.googleapis.com/oauth2/v3/userinfo
spring.security.oauth2.client.provider.google.jwk-set-uri=https://www.googleapis.com/oauth2/v3/certs
spring.security.oauth2.client.provider.google.user-name-attribute=sub

OAuth2 Provider Configuration:

উদাহরণে Google ব্যবহার করা হয়েছে। আপনি GitHub, Facebook ইত্যাদিও কনফিগার করতে পারেন।


৩. Spring Security Configuration

Spring Security কনফিগারেশনে OAuth2 Login সেটআপ করতে হবে।

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.web.SecurityFilterChain;

@Configuration
public class SecurityConfig {

    @Bean
    public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
        http
            .authorizeRequests()
                .antMatchers("/", "/login").permitAll() // Public URL
                .anyRequest().authenticated() // Secure All Other URLs
            .and()
            .oauth2Login() // Enable OAuth2 Login
                .defaultSuccessUrl("/welcome", true); // Redirect after successful login
        return http.build();
    }
}

৪. Controller তৈরি করুন

OAuth2 অথেন্টিকেশনের পরে ইউজার ডেটা রিসিভ করতে Principal ব্যবহার করা হয়।

import org.springframework.security.core.annotation.AuthenticationPrincipal;
import org.springframework.security.oauth2.core.user.OAuth2User;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;

@Controller
public class OAuth2Controller {

    @GetMapping("/")
    public String index() {
        return "index"; // একটি সাধারণ হোম পেজ
    }

    @GetMapping("/welcome")
    public String welcome(@AuthenticationPrincipal OAuth2User user, Model model) {
        model.addAttribute("name", user.getAttribute("name"));
        model.addAttribute("email", user.getAttribute("email"));
        return "welcome"; // ইউজারের তথ্য দেখানোর জন্য পেজ
    }
}

৫. Frontend (HTML Templates)

index.html:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Home</title>
</head>
<body>
    <h1>Welcome to Spring Boot OAuth2</h1>
    <a href="/oauth2/authorization/google">Login with Google</a>
</body>
</html>

welcome.html:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Welcome</title>
</head>
<body>
    <h1>Welcome, ${name}</h1>
    <p>Your email: ${email}</p>
    <a href="/logout">Logout</a>
</body>
</html>

৬. রান এবং টেস্টিং

  1. Spring Boot অ্যাপ্লিকেশন চালু করুন।
  2. ব্রাউজারে http://localhost:8080 এ যান।
  3. Google Login বাটনে ক্লিক করুন।
  4. লগইন সফল হলে, ওয়েলকাম পেজে ইউজারের নাম এবং ইমেইল দেখাবে।

OAuth2 এর গুরুত্বপূর্ণ উপাদান

  1. Client Registration: অ্যাপ্লিকেশন যে OAuth2 প্রোভাইডার ব্যবহার করবে তার তথ্য।
  2. Authorization Grant Type: authorization_code, implicit, password, বা client_credentials
  3. Redirect URI: লগইন সফল হলে ইউজারকে কোথায় রিডাইরেক্ট করা হবে।
  4. Scopes: কোন ধরনের ডেটা অ্যাক্সেসের জন্য অনুমতি প্রয়োজন।

উপসংহার

Spring Boot-এর মাধ্যমে OAuth2 ইন্টিগ্রেশন সহজ এবং কার্যকর। এটি আপনার অ্যাপ্লিকেশনকে সিকিউর অথেন্টিকেশন মডেলে উন্নীত করতে সহায়তা করে। যদি আপনার নির্দিষ্ট প্রয়োজন বা সমস্যার জন্য সাহায্য দরকার হয়, জানাবেন! 😊

Content added By
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion